#ifndef MAINWINDOW_H
#define MAINWINDOW_H

// #include <QMainWindow>
// #include <QFutureWatcher>
// #include <QDoubleSpinBox>
// #include "satellitepos.h"
// #include "eventanalyzer.h"
#include <QMainWindow>
#include "eventanalyzer.h"


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

//数据传递结构体
struct AnalysisParams {
    SatellitePos::TleSource tleSource;
    bool selectAllNorad;
    QString noradPath;
    QString tlePath;
    QDateTime startTime;
    QDateTime endTime;
    libsgp4::CoordGeodetic obsGeo;
};
Q_DECLARE_METATYPE(AnalysisParams)

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void onBrowseNorad();    // NORAD路径选择
    void onBrowseTle();      // TLE路径选择
    void onBrowseEvents();   // 事件路径选择
    void onStartAnalysis();  // 开始分析
    void updateProgress(int percent); // 更新进度
    void handleDataReady();
    // void handleProgress(int);
    void handleError(const QString&);

private:
    Ui::MainWindow *ui;
    EventAnalyzer *m_analyzer;
    QThread *m_analysisThread;
    SatellitePos m_satPos;

    void setupConnections();
    void setUIEnabled(bool enabled);

    // 初始化UI样式
    void initStyleSheets();
};
#endif // MAINWINDOW_H
